package cn.zhaoguang.usedcar.main.service;

import cn.zhaoguang.usedcar.common.page.PageRequest;
import cn.zhaoguang.usedcar.common.page.PageResult;
import cn.zhaoguang.usedcar.main.entity.Usedcar;
import cn.zhaoguang.usedcar.main.entity.dto.SellerInfoAndUsedcarDTO;
import cn.zhaoguang.usedcar.main.entity.dto.UsedcarDetailDTO;

import java.util.List;

/**
 * @Description
 * @Author zhaoguang
 * @Date 2021/7/3 11:03
 */
public interface UsedcarService {

    /**
     * @Description 添加
     * @Author zhaoguang
     */
    int add(Usedcar usedcar);

    /**
     * @Description 删除
     * @Author zhaoguang
     */
    int delete(Integer id);

    /**
     * @Description 修改
     * @Author zhaoguang
     */
    int update(Usedcar usedcar);

    /**
     * @Description 商家接口-查询本店铺全部车辆
     * @Author zhaoguang
     */
    PageResult findAllBySellerId(PageRequest pageRequest);

    /**
     * @Description 用户、商家接口-查询车辆详情和店铺信息
     * @Author zhaoguang
     */
    UsedcarDetailDTO findDetailById(Integer id);

    /**
     * @Description 商家接口-根据车辆id查询车辆(修改车辆查询时使用)
     * @Author zhaoguang
     */
    Usedcar findUsedcarById(Integer id);






    /**
     * @Description 用户接口-查询全部车辆
     * @Author zhaoguang
     */
    PageResult findAll(PageRequest pageRequest);

    /**
     * @Description 用户接口-搜索、筛选车辆
     * @Author zhaoguang
     */
    PageResult choiceCar(PageRequest pageRequest);

    /**
     * @Description 用户接口-查询某个商家的信息和车辆(用户进入某个店铺时使用的API)(需要使用左连接)
     * @Author zhaoguang
     */
    SellerInfoAndUsedcarDTO findSellerInfoAndUsedcarByIdForUser(Integer id);

    /**
     * @Description 用户接口-查询今日添加的最新车辆
     * @Author zhaoguang
     */
    List<Usedcar> findTodayUsedcar();




    /**
     * @Description 管理员接口-查询全部车辆(与用户接口的查询全部车辆不同)
     * @Author zhaoguang
     */
    PageResult findAllForManager(PageRequest pageRequest);
}
